/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * TransGUI.java
 *
 * Created on 27.06.2012, 16:48:48
 */
package transgui;

import java.awt.event.ActionEvent;
import java.io.File;
import java.io.IOException;

import javax.swing.DefaultListModel;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

import libraries.TransConn;
import libraries.TransPart;
import libraries.TransPartLibrary;
import translation.Circuit;

/**
 * The main GUI of the program
 * @author Andreas Gruner
 */
public class TransGUI extends javax.swing.JFrame {

	LibraryContainerList libraries;
	
    /** Creates new form TransGUI */
    public TransGUI() {
        libraries = new LibraryContainerList();
        initComponents();

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroupValue = new javax.swing.ButtonGroup();
        buttonGroupUCDValue = new javax.swing.ButtonGroup();
        UnrecognizedComponentDialog = new javax.swing.JDialog();
        jPanel30 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabelUCDDevice = new javax.swing.JLabel();
        jLabelUCDPart = new javax.swing.JLabel();
        jLabelUCDPackage = new javax.swing.JLabel();
        jLabelUCDValue = new javax.swing.JLabel();
        jLabelUCDLibrary = new javax.swing.JLabel();
        jPanel3 = new javax.swing.JPanel();
        jPanel23 = new javax.swing.JPanel();
        jLabel11 = new javax.swing.JLabel();
        jPanel24 = new javax.swing.JPanel();
        jTextFieldUCDModelicaPath = new javax.swing.JTextField();
        jPanel25 = new javax.swing.JPanel();
        jLabel12 = new javax.swing.JLabel();
        jPanel26 = new javax.swing.JPanel();
        jTextFieldUCDComment = new javax.swing.JTextField();
        jPanel27 = new javax.swing.JPanel();
        jLabel13 = new javax.swing.JLabel();
        jPanel28 = new javax.swing.JPanel();
        jTextFieldUCDValue = new javax.swing.JTextField();
        jPanel29 = new javax.swing.JPanel();
        jLabel14 = new javax.swing.JLabel();
        jRadioButtonUCDIgnore = new javax.swing.JRadioButton();
        jRadioButtonUCDPrefix = new javax.swing.JRadioButton();
        jRadioButtonUCDInstead = new javax.swing.JRadioButton();
        jPanel31 = new javax.swing.JPanel();
        jButtonUCDTranslateOnce = new javax.swing.JButton();
        jButtonUCDTranslateInsert = new javax.swing.JButton();
        jButtonCreateCustom = new javax.swing.JButton();
        ConnectorPanel = new javax.swing.JPanel();
        jLabel20 = new javax.swing.JLabel();
        jTextFieldCPEagle = new javax.swing.JTextField();
        jLabel21 = new javax.swing.JLabel();
        jTextFieldCPModelica = new javax.swing.JTextField();
        jFileChooserList = new javax.swing.JFileChooser();
        jFileChooserModelica = new javax.swing.JFileChooser();
        jFileChooserLib = new javax.swing.JFileChooser();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel1 = new javax.swing.JPanel();
        filler3 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
        jPanel4 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jPanel7 = new javax.swing.JPanel();
        jTextFieldPartListPath = new javax.swing.JTextField();
        jButtonPartListPathFileChooser = new javax.swing.JButton();
        filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
        jPanel9 = new javax.swing.JPanel();
        jLabel4 = new javax.swing.JLabel();
        jPanel10 = new javax.swing.JPanel();
        jTextFieldNetListPath = new javax.swing.JTextField();
        jButtonNetListPathFileChooser = new javax.swing.JButton();
        filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
        jButtonTranslate = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jPanel2 = new javax.swing.JPanel();
        jSplitPane1 = new javax.swing.JSplitPane();
        jPanel6 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jListLibraries = new javax.swing.JList();
        jTabbedPane2 = new javax.swing.JTabbedPane();
        jPanel5 = new javax.swing.JPanel();
        jPanel8 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        jPanel11 = new javax.swing.JPanel();
        jTextFieldEAGLELibrary = new javax.swing.JTextField();
        jPanel12 = new javax.swing.JPanel();
        jLabel5 = new javax.swing.JLabel();
        jPanel13 = new javax.swing.JPanel();
        jTextFieldEAGLEPackage = new javax.swing.JTextField();
        jPanel14 = new javax.swing.JPanel();
        jLabel6 = new javax.swing.JLabel();
        jPanel15 = new javax.swing.JPanel();
        jTextFieldEAGLEDevice = new javax.swing.JTextField();
        jPanel16 = new javax.swing.JPanel();
        jLabel7 = new javax.swing.JLabel();
        jPanel17 = new javax.swing.JPanel();
        jTextFieldModelicaPath = new javax.swing.JTextField();
        jPanel18 = new javax.swing.JPanel();
        jLabel8 = new javax.swing.JLabel();
        jPanel19 = new javax.swing.JPanel();
        jTextFieldComment = new javax.swing.JTextField();
        jPanel21 = new javax.swing.JPanel();
        jLabel10 = new javax.swing.JLabel();
        jPanel22 = new javax.swing.JPanel();
        jTextFieldValue = new javax.swing.JTextField();
        jPanel20 = new javax.swing.JPanel();
        jLabel9 = new javax.swing.JLabel();
        jRadioButtonIgnore = new javax.swing.JRadioButton();
        jRadioButtonPrefix = new javax.swing.JRadioButton();
        jRadioButtonReplace = new javax.swing.JRadioButton();
        jButtonCreatePart = new javax.swing.JButton();
        jPanel32 = new javax.swing.JPanel();
        jScrollPane3 = new javax.swing.JScrollPane();
        jListParts = new javax.swing.JList();
        jPanel34 = new javax.swing.JPanel();
        jScrollPane4 = new javax.swing.JScrollPane();
        jTextAreaDescription = new javax.swing.JTextArea();
        jPanel33 = new javax.swing.JPanel();
        jButtonDeletePart = new javax.swing.JButton();
        jButtonEditPart = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jLibraryMenu = new javax.swing.JMenu();
        jMenuItemNew = new javax.swing.JMenuItem();
        jMenuItemMerge = new javax.swing.JMenuItem();
        jMenuItemImport = new javax.swing.JMenuItem();
        jMenuItemImportDir = new javax.swing.JMenuItem();
        jMenuItemExport = new javax.swing.JMenuItem();
        jMenuItemExportAll = new javax.swing.JMenuItem();
        jMenuItemDelete = new javax.swing.JMenuItem();

        UnrecognizedComponentDialog.setTitle("Unrecognized Part");
        UnrecognizedComponentDialog.setEnabled(false);
        UnrecognizedComponentDialog.setName("Unrecognized Component"); // NOI18N

        jPanel30.setLayout(new java.awt.GridLayout(3, 2));

        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("Unrecognized Component:");
        jLabel1.setVerticalAlignment(javax.swing.SwingConstants.TOP);
        jPanel30.add(jLabel1);

        jLabelUCDDevice.setText("EAGLE Device:");
        jPanel30.add(jLabelUCDDevice);

        jLabelUCDPart.setText("EAGLE Part:");
        jPanel30.add(jLabelUCDPart);

        jLabelUCDPackage.setText("EAGLE Package:");
        jPanel30.add(jLabelUCDPackage);

        jLabelUCDValue.setText("EAGLE Value:");
        jPanel30.add(jLabelUCDValue);

        jLabelUCDLibrary.setText("EAGLE Library:");
        jPanel30.add(jLabelUCDLibrary);

        UnrecognizedComponentDialog.getContentPane().add(jPanel30, java.awt.BorderLayout.NORTH);

        jPanel3.setLayout(new javax.swing.BoxLayout(jPanel3, javax.swing.BoxLayout.PAGE_AXIS));

        jPanel23.setLayout(new javax.swing.BoxLayout(jPanel23, javax.swing.BoxLayout.LINE_AXIS));

        jLabel11.setText("MODELICA Path");
        jPanel23.add(jLabel11);

        jPanel24.setLayout(new java.awt.GridLayout(1, 0));
        jPanel23.add(jPanel24);

        jTextFieldUCDModelicaPath.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldUCDModelicaPath.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldUCDModelicaPathActionPerformed(evt);
            }
        });
        jPanel23.add(jTextFieldUCDModelicaPath);

        jPanel3.add(jPanel23);

        jPanel25.setLayout(new javax.swing.BoxLayout(jPanel25, javax.swing.BoxLayout.LINE_AXIS));

        jLabel12.setText("Comment");
        jPanel25.add(jLabel12);

        jPanel26.setLayout(new java.awt.GridLayout(1, 0));
        jPanel25.add(jPanel26);

        jTextFieldUCDComment.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldUCDComment.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldUCDCommentActionPerformed(evt);
            }
        });
        jPanel25.add(jTextFieldUCDComment);

        jPanel3.add(jPanel25);

        jPanel27.setLayout(new javax.swing.BoxLayout(jPanel27, javax.swing.BoxLayout.LINE_AXIS));

        jLabel13.setText("Value");
        jPanel27.add(jLabel13);

        jPanel28.setLayout(new java.awt.GridLayout(1, 0));
        jPanel27.add(jPanel28);

        jTextFieldUCDValue.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldUCDValue.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldUCDValueActionPerformed(evt);
            }
        });
        jPanel27.add(jTextFieldUCDValue);

        jPanel3.add(jPanel27);

        jPanel29.setLayout(new javax.swing.BoxLayout(jPanel29, javax.swing.BoxLayout.LINE_AXIS));

        jLabel14.setText("Value");
        jPanel29.add(jLabel14);

        buttonGroupUCDValue.add(jRadioButtonUCDIgnore);
        jRadioButtonUCDIgnore.setText("Ignore");
        jRadioButtonUCDIgnore.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButtonUCDIgnoreActionPerformed(evt);
            }
        });
        jPanel29.add(jRadioButtonUCDIgnore);

        buttonGroupUCDValue.add(jRadioButtonUCDPrefix);
        jRadioButtonUCDPrefix.setText("Use as prefix to EAGLE value");
        jPanel29.add(jRadioButtonUCDPrefix);

        buttonGroupUCDValue.add(jRadioButtonUCDInstead);
        jRadioButtonUCDInstead.setText("Use instead of EAGLE value");
        jRadioButtonUCDInstead.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButtonUCDInsteadActionPerformed(evt);
            }
        });
        jPanel29.add(jRadioButtonUCDInstead);

        jPanel3.add(jPanel29);

        UnrecognizedComponentDialog.getContentPane().add(jPanel3, java.awt.BorderLayout.CENTER);

        jButtonUCDTranslateOnce.setText("Translate Once");
        jButtonUCDTranslateOnce.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonUCDTranslateOnceActionPerformed(evt);
            }
        });
        jPanel31.add(jButtonUCDTranslateOnce);

        jButtonUCDTranslateInsert.setText("Translate & Insert into Library");
        jPanel31.add(jButtonUCDTranslateInsert);

        jButtonCreateCustom.setText("Create Custom Component");
        jButtonCreateCustom.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCreateCustomActionPerformed(evt);
            }
        });
        jPanel31.add(jButtonCreateCustom);

        UnrecognizedComponentDialog.getContentPane().add(jPanel31, java.awt.BorderLayout.SOUTH);

        ConnectorPanel.setLayout(new java.awt.GridLayout(1, 4));

        jLabel20.setText("EAGLE pin name");
        ConnectorPanel.add(jLabel20);

        jTextFieldCPEagle.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldCPEagleActionPerformed(evt);
            }
        });
        ConnectorPanel.add(jTextFieldCPEagle);

        jLabel21.setText("Modelica connector name");
        ConnectorPanel.add(jLabel21);
        ConnectorPanel.add(jTextFieldCPModelica);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("EAGLE to Modelica Translation Software");

        jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.PAGE_AXIS));
        jPanel1.add(filler3);

        jPanel4.setLayout(new javax.swing.BoxLayout(jPanel4, javax.swing.BoxLayout.LINE_AXIS));

        jLabel2.setText("part list path:");
        jPanel4.add(jLabel2);

        jPanel7.setLayout(new java.awt.GridLayout(1, 0));
        jPanel4.add(jPanel7);

        jTextFieldPartListPath.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldPartListPath.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldPartListPathActionPerformed(evt);
            }
        });
        jPanel4.add(jTextFieldPartListPath);

        jButtonPartListPathFileChooser.setText("...");
        jButtonPartListPathFileChooser.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonPartListPathFileChooserActionPerformed(evt);
            }
        });
        jPanel4.add(jButtonPartListPathFileChooser);

        jPanel1.add(jPanel4);
        jPanel1.add(filler2);

        jPanel9.setLayout(new javax.swing.BoxLayout(jPanel9, javax.swing.BoxLayout.LINE_AXIS));

        jLabel4.setText("net list path:");
        jPanel9.add(jLabel4);

        jPanel10.setLayout(new java.awt.GridLayout(1, 0));
        jPanel9.add(jPanel10);

        jTextFieldNetListPath.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldNetListPath.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldNetListPathActionPerformed(evt);
            }
        });
        jPanel9.add(jTextFieldNetListPath);

        jButtonNetListPathFileChooser.setText("...");
        jButtonNetListPathFileChooser.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonNetListPathFileChooserActionPerformed(evt);
            }
        });
        jPanel9.add(jButtonNetListPathFileChooser);

        jPanel1.add(jPanel9);
        jPanel1.add(filler1);

        jButtonTranslate.setText("Translate!");
        jButtonTranslate.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonTranslateActionPerformed(evt);
            }
        });
        jPanel1.add(jButtonTranslate);

        jTextArea1.setColumns(20);
        jTextArea1.setLineWrap(true);
        jTextArea1.setRows(5);
        jScrollPane2.setViewportView(jTextArea1);

        jPanel1.add(jScrollPane2);

        jTabbedPane1.addTab("Translation", jPanel1);

        jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2, javax.swing.BoxLayout.LINE_AXIS));

        jSplitPane1.setDividerLocation(100);
        jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);

        jPanel6.setLayout(new java.awt.GridLayout(1, 0));

        jListLibraries.setModel(libraries);
        jListLibraries.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListLibraries.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                jListLibrariesValueChanged(evt);
            }
        });
        jScrollPane1.setViewportView(jListLibraries);

        jPanel6.add(jScrollPane1);

        jSplitPane1.setLeftComponent(jPanel6);

        jPanel5.setLayout(new javax.swing.BoxLayout(jPanel5, javax.swing.BoxLayout.PAGE_AXIS));

        jPanel8.setLayout(new javax.swing.BoxLayout(jPanel8, javax.swing.BoxLayout.LINE_AXIS));

        jLabel3.setText("EAGLE Library");
        jLabel3.setMaximumSize(new java.awt.Dimension(200, 14));
        jLabel3.setPreferredSize(new java.awt.Dimension(100, 14));
        jPanel8.add(jLabel3);

        jPanel11.setLayout(new java.awt.GridLayout(1, 0));
        jPanel8.add(jPanel11);

        jTextFieldEAGLELibrary.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldEAGLELibrary.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldEAGLELibraryActionPerformed(evt);
            }
        });
        jPanel8.add(jTextFieldEAGLELibrary);

        jPanel5.add(jPanel8);

        jPanel12.setLayout(new javax.swing.BoxLayout(jPanel12, javax.swing.BoxLayout.LINE_AXIS));

        jLabel5.setText("EAGLE Package");
        jLabel5.setMaximumSize(new java.awt.Dimension(200, 14));
        jLabel5.setPreferredSize(new java.awt.Dimension(100, 14));
        jPanel12.add(jLabel5);

        jPanel13.setLayout(new java.awt.GridLayout(1, 0));
        jPanel12.add(jPanel13);

        jTextFieldEAGLEPackage.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldEAGLEPackage.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldEAGLEPackageActionPerformed(evt);
            }
        });
        jPanel12.add(jTextFieldEAGLEPackage);

        jPanel5.add(jPanel12);

        jPanel14.setLayout(new javax.swing.BoxLayout(jPanel14, javax.swing.BoxLayout.LINE_AXIS));

        jLabel6.setText("EAGLE Device");
        jLabel6.setMaximumSize(new java.awt.Dimension(200, 14));
        jLabel6.setPreferredSize(new java.awt.Dimension(100, 14));
        jPanel14.add(jLabel6);

        jPanel15.setLayout(new java.awt.GridLayout(1, 0));
        jPanel14.add(jPanel15);

        jTextFieldEAGLEDevice.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldEAGLEDevice.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldEAGLEDeviceActionPerformed(evt);
            }
        });
        jPanel14.add(jTextFieldEAGLEDevice);

        jPanel5.add(jPanel14);

        jPanel16.setLayout(new javax.swing.BoxLayout(jPanel16, javax.swing.BoxLayout.LINE_AXIS));

        jLabel7.setText("Modelica Model");
        jLabel7.setMaximumSize(new java.awt.Dimension(200, 14));
        jLabel7.setPreferredSize(new java.awt.Dimension(100, 14));
        jPanel16.add(jLabel7);

        jPanel17.setLayout(new java.awt.GridLayout(1, 0));
        jPanel16.add(jPanel17);

        jTextFieldModelicaPath.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldModelicaPath.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldModelicaPathActionPerformed(evt);
            }
        });
        jPanel16.add(jTextFieldModelicaPath);

        jPanel5.add(jPanel16);

        jPanel18.setLayout(new javax.swing.BoxLayout(jPanel18, javax.swing.BoxLayout.LINE_AXIS));

        jLabel8.setText("Comment");
        jLabel8.setMaximumSize(new java.awt.Dimension(200, 14));
        jLabel8.setPreferredSize(new java.awt.Dimension(100, 14));
        jPanel18.add(jLabel8);

        jPanel19.setLayout(new java.awt.GridLayout(1, 0));
        jPanel18.add(jPanel19);

        jTextFieldComment.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldComment.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldCommentActionPerformed(evt);
            }
        });
        jPanel18.add(jTextFieldComment);

        jPanel5.add(jPanel18);

        jPanel21.setLayout(new javax.swing.BoxLayout(jPanel21, javax.swing.BoxLayout.LINE_AXIS));

        jLabel10.setText("Value");
        jLabel10.setMaximumSize(new java.awt.Dimension(200, 14));
        jLabel10.setPreferredSize(new java.awt.Dimension(100, 14));
        jPanel21.add(jLabel10);

        jPanel22.setLayout(new java.awt.GridLayout(1, 0));
        jPanel21.add(jPanel22);

        jTextFieldValue.setMaximumSize(new java.awt.Dimension(2147483647, 20));
        jTextFieldValue.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldValueActionPerformed(evt);
            }
        });
        jPanel21.add(jTextFieldValue);

        jPanel5.add(jPanel21);

        jPanel20.setLayout(new javax.swing.BoxLayout(jPanel20, javax.swing.BoxLayout.LINE_AXIS));

        jLabel9.setText("Value:");
        jPanel20.add(jLabel9);

        buttonGroupValue.add(jRadioButtonIgnore);
        jRadioButtonIgnore.setText("Ignore");
        jRadioButtonIgnore.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButtonIgnoreActionPerformed(evt);
            }
        });
        jPanel20.add(jRadioButtonIgnore);

        buttonGroupValue.add(jRadioButtonPrefix);
        jRadioButtonPrefix.setText("Use as prefix to EAGLE value");
        jPanel20.add(jRadioButtonPrefix);

        buttonGroupValue.add(jRadioButtonReplace);
        jRadioButtonReplace.setText("Use instead of EAGLE value");
        jRadioButtonReplace.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButtonReplaceActionPerformed(evt);
            }
        });
        jPanel20.add(jRadioButtonReplace);

        jPanel5.add(jPanel20);

        jButtonCreatePart.setText("Create Part");
        jButtonCreatePart.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCreatePartActionPerformed(evt);
            }
        });
        jPanel5.add(jButtonCreatePart);

        jTabbedPane2.addTab("Part Creation", jPanel5);

        jPanel32.setName(""); // NOI18N
        jPanel32.setOpaque(false);
        jPanel32.setLayout(new javax.swing.BoxLayout(jPanel32, javax.swing.BoxLayout.LINE_AXIS));

        jListParts.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jListParts.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                jListPartsValueChanged(evt);
            }
        });
        jScrollPane3.setViewportView(jListParts);

        jPanel32.add(jScrollPane3);

        jPanel34.setLayout(new javax.swing.BoxLayout(jPanel34, javax.swing.BoxLayout.PAGE_AXIS));

        jTextAreaDescription.setColumns(20);
        jTextAreaDescription.setLineWrap(true);
        jTextAreaDescription.setRows(5);
        jTextAreaDescription.setWrapStyleWord(true);
        jScrollPane4.setViewportView(jTextAreaDescription);

        jPanel34.add(jScrollPane4);

        jButtonDeletePart.setText("Delete Part");
        jButtonDeletePart.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonDeletePartActionPerformed(evt);
            }
        });
        jPanel33.add(jButtonDeletePart);

        jButtonEditPart.setText("Edit Part");
        jButtonEditPart.setEnabled(false);
        jPanel33.add(jButtonEditPart);

        jPanel34.add(jPanel33);

        jPanel32.add(jPanel34);

        jTabbedPane2.addTab("Part Inspection", jPanel32);

        jSplitPane1.setRightComponent(jTabbedPane2);

        jPanel2.add(jSplitPane1);

        jTabbedPane1.addTab("Parts and Libraries", jPanel2);

        getContentPane().add(jTabbedPane1, java.awt.BorderLayout.CENTER);

        jLibraryMenu.setText("Libraries");
        jLibraryMenu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jLibraryMenuActionPerformed(evt);
            }
        });

        jMenuItemNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemNew.setText("New");
        jMenuItemNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemNewActionPerformed(evt);
            }
        });
        jLibraryMenu.add(jMenuItemNew);

        jMenuItemMerge.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemMerge.setText("Merge");
        jMenuItemMerge.setEnabled(false);
        jMenuItemMerge.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemMergeActionPerformed(evt);
            }
        });
        jLibraryMenu.add(jMenuItemMerge);

        jMenuItemImport.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemImport.setText("Import");
        jMenuItemImport.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemImportActionPerformed(evt);
            }
        });
        jLibraryMenu.add(jMenuItemImport);

        jMenuItemImportDir.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemImportDir.setText("Import Directory");
        jMenuItemImportDir.setToolTipText("");
        jMenuItemImportDir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemImportDirActionPerformed(evt);
            }
        });
        jLibraryMenu.add(jMenuItemImportDir);

        jMenuItemExport.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemExport.setText("Export");
        jMenuItemExport.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemExportActionPerformed(evt);
            }
        });
        jLibraryMenu.add(jMenuItemExport);

        jMenuItemExportAll.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemExportAll.setText("Export All");
        jMenuItemExportAll.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemExportAllActionPerformed(evt);
            }
        });
        jLibraryMenu.add(jMenuItemExportAll);

        jMenuItemDelete.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_DELETE, 0));
        jMenuItemDelete.setText("Delete");
        jMenuItemDelete.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemDeleteActionPerformed(evt);
            }
        });
        jLibraryMenu.add(jMenuItemDelete);

        jMenuBar1.add(jLibraryMenu);

        setJMenuBar(jMenuBar1);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    protected void jLibraryMenuActionPerformed(ActionEvent evt) {
		// TODO Auto-generated method stub
		
	}

	private void jButtonPartListPathFileChooserActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonPartListPathFileChooserActionPerformed
    	if (evt.getSource() == jButtonPartListPathFileChooser) {
            int returnVal = jFileChooserList.showOpenDialog(this);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = jFileChooserList.getSelectedFile();
                jTextFieldPartListPath.setText(file.getAbsolutePath());
            }
        }
    }//GEN-LAST:event_jButtonPartListPathFileChooserActionPerformed

    private void jTextFieldPartListPathActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldPartListPathActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldPartListPathActionPerformed

    private void jTextFieldNetListPathActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldNetListPathActionPerformed

    }//GEN-LAST:event_jTextFieldNetListPathActionPerformed

    private void jButtonNetListPathFileChooserActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonNetListPathFileChooserActionPerformed
    	if (evt.getSource() == jButtonNetListPathFileChooser) {
            int returnVal = jFileChooserList.showOpenDialog(this);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = jFileChooserList.getSelectedFile();
                jTextFieldNetListPath.setText(file.getAbsolutePath());
            }
    	}
    }//GEN-LAST:event_jButtonNetListPathFileChooserActionPerformed

    private void jRadioButtonReplaceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonReplaceActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_jRadioButtonReplaceActionPerformed

    private void jRadioButtonIgnoreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonIgnoreActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_jRadioButtonIgnoreActionPerformed

    private void jTextFieldValueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldValueActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_jTextFieldValueActionPerformed

    private void jTextFieldCommentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldCommentActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_jTextFieldCommentActionPerformed

    private void jTextFieldModelicaPathActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldModelicaPathActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_jTextFieldModelicaPathActionPerformed

    private void jTextFieldEAGLEDeviceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldEAGLEDeviceActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_jTextFieldEAGLEDeviceActionPerformed

    private void jTextFieldEAGLEPackageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldEAGLEPackageActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_jTextFieldEAGLEPackageActionPerformed

    private void jTextFieldEAGLELibraryActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldEAGLELibraryActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_jTextFieldEAGLELibraryActionPerformed

    private void jTextFieldUCDModelicaPathActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldUCDModelicaPathActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldUCDModelicaPathActionPerformed

    private void jTextFieldUCDCommentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldUCDCommentActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldUCDCommentActionPerformed

    private void jTextFieldUCDValueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldUCDValueActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldUCDValueActionPerformed

    private void jRadioButtonUCDIgnoreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonUCDIgnoreActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jRadioButtonUCDIgnoreActionPerformed

    private void jRadioButtonUCDInsteadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonUCDInsteadActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jRadioButtonUCDInsteadActionPerformed

    private void jButtonUCDTranslateOnceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonUCDTranslateOnceActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jButtonUCDTranslateOnceActionPerformed

    private void jButtonCreateCustomActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCreateCustomActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jButtonCreateCustomActionPerformed

    private void jTextFieldCPEagleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldCPEagleActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldCPEagleActionPerformed

    private void jButtonTranslateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonTranslateActionPerformed
    	if (evt.getSource() == jButtonTranslate) { 
            int returnVal = jFileChooserModelica.showSaveDialog(this);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File save = jFileChooserModelica.getSelectedFile();
                File parts = new File(jTextFieldPartListPath.getText());
                File nets = new File(jTextFieldNetListPath.getText());
                Circuit.translate(parts, nets, save, libraries);
            }
    	}
    }//GEN-LAST:event_jButtonTranslateActionPerformed

    private void jMenuItemNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemNewActionPerformed
    	if (evt.getSource() == jMenuItemNew) {
    		String name = JOptionPane.showInputDialog(this, "Please name the new library");
    		if (name != null && !name.equals("")) {
    			libraries.addLibrary(name);
    		}
    	}
    }//GEN-LAST:event_jMenuItemNewActionPerformed

    private void jButtonCreatePartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCreatePartActionPerformed
    	if (evt.getSource() == jButtonCreatePart) {
    		if (buttonGroupValue.getSelection() != null) {
    			if (!jListLibraries.isSelectionEmpty()) {
    				String connectors = JOptionPane.showInputDialog(this, "Please specify the number of connectors");
    				try {
        				int c = Integer.parseInt(connectors);
        				if (c < 1) {
        					throw new NumberFormatException("Number must be greater than zero.");
        				}
        				new ConnectorGUI(c, this).setVisible(true);
        				this.setEnabled(false);
    				} catch (NumberFormatException e) {
    					JOptionPane.showMessageDialog(this, "Only natural numbers greater than zero are allowed", "Illegal Number", JOptionPane.ERROR_MESSAGE);
    				}
    			} else {
    				JOptionPane.showMessageDialog(this, "Please select a library", "Error", JOptionPane.ERROR_MESSAGE);
    			}
    		} else {
    			JOptionPane.showMessageDialog(this, "Please select a value type", "Error", JOptionPane.ERROR_MESSAGE);
    		}
    	}
    }//GEN-LAST:event_jButtonCreatePartActionPerformed
    
	public void finishPartCreation(TransConn connectorResult) {
		int vt = 0;
		if(jRadioButtonIgnore.isSelected()) {
			vt = 0;
		} else if  (jRadioButtonPrefix.isSelected()){
			vt = 1;
		} else {
			vt = 2;
		}
		TransPart part = new TransPart(jTextFieldEAGLEDevice.getText(), jTextFieldEAGLEPackage.getText(), jTextFieldEAGLELibrary.getText(),
				jTextFieldComment.getText(), connectorResult, jTextFieldModelicaPath.getText(), vt,
				jTextFieldValue.getText());
		//((TransPartLibraryList)jListLibraries.getSelectedValue()).add(part);
		libraries.addPart((TransPartLibraryList) jListLibraries.getSelectedValue(), part);
	}

    private void jListLibrariesValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jListLibrariesValueChanged
    	if (evt.getSource() == jListLibraries) {
    		if (jListLibraries.isSelectionEmpty()) {
    			jListParts.setModel(new DefaultListModel());
    		} else {
    			jListParts.setModel((TransPartLibraryList) jListLibraries.getSelectedValue());
    		}
    	}
    }//GEN-LAST:event_jListLibrariesValueChanged

    private void jListPartsValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jListPartsValueChanged
    	if (evt.getSource() == jListParts) {
    		if (jListParts.isSelectionEmpty()) {
    			jTextAreaDescription.setText("");
    		} else {
    			jTextAreaDescription.setText(((TransPart)jListParts.getSelectedValue()).toLongString());
    		}
    	}
    }//GEN-LAST:event_jListPartsValueChanged

    private void jButtonDeletePartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonDeletePartActionPerformed
        if (evt.getSource() == jButtonDeletePart) {
        	if (jListParts.isSelectionEmpty()) {
        		JOptionPane.showMessageDialog(this, "Please select a part to delete", "No Part Selected", JOptionPane.ERROR_MESSAGE);
        	} else {
       			int decision = JOptionPane.showConfirmDialog(this, "Do you really want to delete the part " + (TransPart)jListParts.getSelectedValue(), "Confirm deletion", JOptionPane.YES_NO_OPTION);

        		((TransPartLibrary) jListLibraries.getSelectedValue()).deletePart((TransPart)jListParts.getSelectedValue());
        	}
        }
    }//GEN-LAST:event_jButtonDeletePartActionPerformed

    private void jMenuItemImportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemImportActionPerformed
    	if (evt.getSource() == jMenuItemImport) {
            int returnVal = jFileChooserLib.showOpenDialog(this);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = jFileChooserLib.getSelectedFile();
                try {
					libraries.readLibraryFile(file);
				} catch (IOException e) {
					JOptionPane.showMessageDialog(this, "Library file could not be opened or is not a valid library", "Error", JOptionPane.ERROR_MESSAGE);
				}
            }
        }
    }//GEN-LAST:event_jMenuItemImportActionPerformed

    private void jMenuItemExportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemExportActionPerformed
       	if (evt.getSource() == jMenuItemExport) {
       		if(jListLibraries.isSelectionEmpty()) { 
       			JOptionPane.showMessageDialog(this, "Please select a library to export", "No Library Selected", JOptionPane.ERROR_MESSAGE);
       		} else {
       			int returnVal = jFileChooserLib.showSaveDialog(this);

       			if (returnVal == JFileChooser.APPROVE_OPTION) {
       				File file = jFileChooserLib.getSelectedFile();
       				if (!file.getName().endsWith(".edl")) {
       					file = new File(file.getPath()+".edl");
       				}
       				try {
       					((TransPartLibrary) jListLibraries.getSelectedValue()).writeLibraryFile(file);
       				} catch (IOException e) {
       					JOptionPane.showMessageDialog(this,  "Library file could not be written", "Error", JOptionPane.ERROR_MESSAGE);
       				}
       			}
       		}
        }
    }//GEN-LAST:event_jMenuItemExportActionPerformed

    private void jMenuItemDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemDeleteActionPerformed
        if (evt.getSource() == jMenuItemDelete) {
       		if(jListLibraries.isSelectionEmpty()) {
       			JOptionPane.showMessageDialog(this, "Please select a library to delete", "No Library Selected", JOptionPane.ERROR_MESSAGE);
       		} else {
       			TransPartLibrary lib = (TransPartLibrary) jListLibraries.getSelectedValue();
       			int decision = JOptionPane.showConfirmDialog(this, "Do you really want to delete the library " + lib, "Confirm deletion", JOptionPane.YES_NO_OPTION);
       			if(decision == JOptionPane.YES_OPTION) {
       				libraries.deleteLibrary(lib);
       			}
       		}
        }
    }//GEN-LAST:event_jMenuItemDeleteActionPerformed

    private void jMenuItemImportDirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemImportDirActionPerformed
    	if (evt.getSource() == jMenuItemImportDir) {
    		jFileChooserLib.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    		
            int returnVal = jFileChooserLib.showOpenDialog(this);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File dir = jFileChooserLib.getSelectedFile();
                for (File f: dir.listFiles()) {
                    if (f.getName().endsWith(".edl"));
                	try {
    					String result = libraries.readLibraryFile(f);
    					if (!result.equals("")) {
        					JOptionPane.showMessageDialog(this, result, "Error", JOptionPane.ERROR_MESSAGE);
    					}
    				} catch (IOException e) {
    					JOptionPane.showMessageDialog(this, "Library file " + f.getName() + " could not be opened or is not a valid library", "Error", JOptionPane.ERROR_MESSAGE);
    				}
                }
            }
    		jFileChooserLib.setFileSelectionMode(JFileChooser.FILES_ONLY);
        }
    }//GEN-LAST:event_jMenuItemImportDirActionPerformed

    private void jMenuItemExportAllActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemExportAllActionPerformed
        if (evt.getSource() == jMenuItemExportAll) {
    		jFileChooserLib.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        	int returnVal = jFileChooserLib.showSaveDialog(this);

        	if (returnVal == JFileChooser.APPROVE_OPTION) {
        		File file = jFileChooserLib.getSelectedFile();
        		
        		for (TransPartLibrary l: libraries.getLibraries()) {
        			File singleLib = new File (file.getPath() + File.separator + l.getName() + ".edl");
            		try {
            			l.writeLibraryFile(singleLib);
            		} catch (IOException e) {
            			JOptionPane.showMessageDialog(this, "Library file " + l.getName() +" could not be written", "Error", JOptionPane.ERROR_MESSAGE);
            		} 
        		}
        		
        		if (!file.getName().endsWith(".edl")) {
        			file = new File(file.getPath()+".edl");
        		}
        		try {
        			((TransPartLibrary) jListLibraries.getSelectedValue()).writeLibraryFile(file);
        		} catch (IOException e) {
        			JOptionPane.showMessageDialog(this, "Library file could not be written", "Error", JOptionPane.ERROR_MESSAGE);
        		}
        	}
    		jFileChooserLib.setFileSelectionMode(JFileChooser.FILES_ONLY);
        }
    }//GEN-LAST:event_jMenuItemExportAllActionPerformed

    private void jMenuItemMergeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemMergeActionPerformed
        if (evt.getSource() == jMenuItemMerge) {
        	
        }
    }//GEN-LAST:event_jMenuItemMergeActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new TransGUI().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel ConnectorPanel;
    private javax.swing.JDialog UnrecognizedComponentDialog;
    private javax.swing.ButtonGroup buttonGroupUCDValue;
    private javax.swing.ButtonGroup buttonGroupValue;
    private javax.swing.Box.Filler filler1;
    private javax.swing.Box.Filler filler2;
    private javax.swing.Box.Filler filler3;
    private javax.swing.JButton jButtonCreateCustom;
    private javax.swing.JButton jButtonCreatePart;
    private javax.swing.JButton jButtonDeletePart;
    private javax.swing.JButton jButtonEditPart;
    private javax.swing.JButton jButtonNetListPathFileChooser;
    private javax.swing.JButton jButtonPartListPathFileChooser;
    private javax.swing.JButton jButtonTranslate;
    private javax.swing.JButton jButtonUCDTranslateInsert;
    private javax.swing.JButton jButtonUCDTranslateOnce;
    private javax.swing.JFileChooser jFileChooserLib;
    private javax.swing.JFileChooser jFileChooserList;
    private javax.swing.JFileChooser jFileChooserModelica;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLabel jLabelUCDDevice;
    private javax.swing.JLabel jLabelUCDLibrary;
    private javax.swing.JLabel jLabelUCDPackage;
    private javax.swing.JLabel jLabelUCDPart;
    private javax.swing.JLabel jLabelUCDValue;
    private javax.swing.JMenu jLibraryMenu;
    private javax.swing.JList jListLibraries;
    private javax.swing.JList jListParts;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItemDelete;
    private javax.swing.JMenuItem jMenuItemExport;
    private javax.swing.JMenuItem jMenuItemExportAll;
    private javax.swing.JMenuItem jMenuItemImport;
    private javax.swing.JMenuItem jMenuItemImportDir;
    private javax.swing.JMenuItem jMenuItemMerge;
    private javax.swing.JMenuItem jMenuItemNew;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel10;
    private javax.swing.JPanel jPanel11;
    private javax.swing.JPanel jPanel12;
    private javax.swing.JPanel jPanel13;
    private javax.swing.JPanel jPanel14;
    private javax.swing.JPanel jPanel15;
    private javax.swing.JPanel jPanel16;
    private javax.swing.JPanel jPanel17;
    private javax.swing.JPanel jPanel18;
    private javax.swing.JPanel jPanel19;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel20;
    private javax.swing.JPanel jPanel21;
    private javax.swing.JPanel jPanel22;
    private javax.swing.JPanel jPanel23;
    private javax.swing.JPanel jPanel24;
    private javax.swing.JPanel jPanel25;
    private javax.swing.JPanel jPanel26;
    private javax.swing.JPanel jPanel27;
    private javax.swing.JPanel jPanel28;
    private javax.swing.JPanel jPanel29;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel30;
    private javax.swing.JPanel jPanel31;
    private javax.swing.JPanel jPanel32;
    private javax.swing.JPanel jPanel33;
    private javax.swing.JPanel jPanel34;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JPanel jPanel9;
    private javax.swing.JRadioButton jRadioButtonIgnore;
    private javax.swing.JRadioButton jRadioButtonPrefix;
    private javax.swing.JRadioButton jRadioButtonReplace;
    private javax.swing.JRadioButton jRadioButtonUCDIgnore;
    private javax.swing.JRadioButton jRadioButtonUCDInstead;
    private javax.swing.JRadioButton jRadioButtonUCDPrefix;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JSplitPane jSplitPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTabbedPane jTabbedPane2;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextArea jTextAreaDescription;
    private javax.swing.JTextField jTextFieldCPEagle;
    private javax.swing.JTextField jTextFieldCPModelica;
    private javax.swing.JTextField jTextFieldComment;
    private javax.swing.JTextField jTextFieldEAGLEDevice;
    private javax.swing.JTextField jTextFieldEAGLELibrary;
    private javax.swing.JTextField jTextFieldEAGLEPackage;
    private javax.swing.JTextField jTextFieldModelicaPath;
    private javax.swing.JTextField jTextFieldNetListPath;
    private javax.swing.JTextField jTextFieldPartListPath;
    private javax.swing.JTextField jTextFieldUCDComment;
    private javax.swing.JTextField jTextFieldUCDModelicaPath;
    private javax.swing.JTextField jTextFieldUCDValue;
    private javax.swing.JTextField jTextFieldValue;
    // End of variables declaration//GEN-END:variables


}
